qui(
    function (require, exports, module) {
        Specimen.Dao = $.extend({}, EpgWeb.Dao, {
            cache: {},
            getDataByTargetName: function (targetName) {
                if (!this.cache.hasOwnProperty(targetName)) {
                    if (this.hasOwnProperty("method_" + targetName)) {
                        var target = this["method_" + targetName]();
                        this.cache[targetName] = target;
                        return target;
                    } else {
                        return null;
                    }
                } else {
                    return this.cache[targetName];
                }
            },
            method_host_list: function () {
                var obj = {
                    start: 0,
                    end: 99,
                    pic_total: 0,
                    pic_update: 0,
                    marked_current: 0,
                    marked_total: 0,
                    current_num: 0
                };
                return obj;
            },

            delSpecimen: function (data, callback) {
                this.doGet(Specimen.urlConfig.delSpecimenUrl, data, callback)
            },
            modifySpecimen: function (data, callback) {
                this.doGet(Specimen.urlConfig.modifySpecimenUrl, data, callback)

            },
            addSpecimen: function (data, callback) {
                this.doGet(Specimen.urlConfig.addSpecimenUrl, data, callback)
            },

            doDownShot: function (data, callback) {
                this.doGet(Specimen.urlConfig.downShotUrl, data, callback)
            },
            doDownTopic: function (data, callback) {
                this.doGet(Specimen.urlConfig.downTopicUrl, data, callback)
            },
            getQueryShot: function (data, callback) {
                this.doGet(Specimen.urlConfig.queryShotUrl, data, callback)
            },
            doUpdateShot: function (data, callback) {
                this.doGet(Specimen.urlConfig.updateShotUrl, data, callback)
            },
            queryAlbumSource: function (data, callback) {
                var options = {
                    url: Specimen.urlConfig.source_query_url,
                    type: "get",
                    data: data,
                    success: function (data) {
                        callback.call(this, data);
                    },
                    error: function (data) {
                        callback.call(this, data);
                    }
                }
                this.sendProxy(options)
            }
        })
    }
);